[E2013] [MAPI] Setting GlobalObjid to make calendar invites work

I am creating calendar entries in Office 365 using MAPI (via an Outlook profile connected to
the online account).  The goal is to be able to create entries for multiple users, such that
the organizer of the meeting is able to modify the event (such as the time) and Office 365
will then send out updates to all attendees that will automatically update their calendar.

An additional complication is that some of the attendees are external, not Office 365 users.
So the .ics file that Outlook sends must have the "UID:" field set to the original UID
of the event.

I know this might be better done using Exchange Web Services but that is not an option at
the moment.

My understanding is that I need to set the GlobalObjid and CleanGlobalObjid properties
to be the same value for attendees of a given event. I am familiar with the structure of
that property, and I currently create one using a random number for the unique part of it,
which works fine, except for the update ability.

An experiment I did was to send a meeting request into O365 using an external program, and
take a look at the GlobalObjid that got created, shown below:

04 00 00 00 82 00 e0 00 74 c5 b7 10 1a 82 e0 08   ........t.......
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
00 00 00 00 2d 00 00 00 76 43 61 6c 2d 55 69 64   ....-...vCal-Uid
01 00 00 00 31 65 34 37 66 65 65 63 2d 65 63 61   ....1e47feec-eca
35 2d 34 62 62 39 2d 61 65 61 65 2d 31 32 33 34   5-4bb9-aeae-1234
35 36 37 39 31                                    56791...........

Note that the CreateDate portion of the structure is zero, and the original UID is
preceeded by the string "vCal-Uid" followed by a 32 bit integer with value 1.  Again,
this was created by Office 365.

My thinking was that I could duplicate this structure and everything would work.
I have actually gotten this to work in one of my test Office 365 accounts.  However at
a customer's site, it does not. The organizer makes a modification, and the attendee
gets an email message with the update, but the time is 7 hours prior to the actual
modified time (local TZ is PDT).  Also, the event is a new stand alone, not linked to
the original event.  There are now two entries at different times.

I tried adding in the created date field, to no effect.  I should note that the GlobalObjid
of the new event in the attendees calendar does not have a date, plus the unique portion
of the structure is the same as the original, except there is an added null byte.  It also
has the YH, YL, M and D bytes filled out.

So, any ideas about what I need to do so that O365 attendees get their calendars updated,
and still maintain the ability for external attendees to get the correct UID?  I must
be missing something, but I don't know what.

May 19th, 2015 4:55pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics